
import java.util.Random;


public class Mostro extends Attore{
	
	public Mostro(){
		
	}

	public Mostro(int l, Arma arma){
		super();
		setLife(l);
		setWeapon(arma);
	}
	
	public void getPotion(){
		
	}
	
	
	public static void moveMonster() {  //muovo il mostro in posizione random, e se necessario
										//combattono tra di loro
		Random r = new Random();
		int i = 8;	//usata nella nextInt per randomizzare
		int m = 0;  //contatore mostri mossi
		for (int x = 0; x < Amministratore.ROWS; x++) {
			for (int y = 0; y < Amministratore.COLUMS; y++) {
				if (Prigione.getEl(x, y) instanceof Mostro) {
					Mostro temp = (Mostro) Prigione.getEl(x, y);
					int j = r.nextInt(i);
					if (j == 1) {
						if (!((x - 1) == -1)) {
							if (Prigione.getEl(x - 1, y ) instanceof Attore) {
								temp.combattimento((Attore) Prigione.getEl(x - 1, y));
							}
							if ((temp.getLife() > 0)&&(!(Prigione.getEl(x - 1, y) instanceof Uscita))&&(!(Prigione.getEl(x - 1, y) instanceof Muro))) {
								temp.moveUp(x, y);
								m++;
							}
						}
					}
					if (j == 2) {
						if (!((x + 1) == Prigione.getROWS())) {
							if (Prigione.getEl(x + 1, y) instanceof Attore) {
								temp.combattimento((Attore) Prigione.getEl(x + 1, y));
							}
							if ((temp.getLife() > 0)&&(!(Prigione.getEl(x + 1, y) instanceof Uscita))&&(!(Prigione.getEl(x + 1, y) instanceof Muro))) {
								temp.moveDown(x, y);
								m++;
							}
						}
					}
					if (j == 3) {
						if (!((y + 1) == Prigione.getCOLUMN())) {
							if (Prigione.getEl(x, y + 1) instanceof Attore) {
								temp.combattimento((Attore) Prigione.getEl(x, y + 1));
							}
							if ((temp.getLife() > 0)&&(!(Prigione.getEl(x, y + 1) instanceof Uscita))&&(!(Prigione.getEl(x, y + 1) instanceof Muro))) {
								temp.moveRight(x, y);
								m++;
							}
						}
					}
					if (j == 4) {
						if (!((y - 1) == -1)) {
							if (Prigione.getEl(x, y - 1) instanceof Attore) {
								temp.combattimento((Attore) Prigione.getEl(x , y - 1));
							}
							if ((temp.getLife() > 0)&&(!(Prigione.getEl(x, y - 1) instanceof Uscita))&&(!(Prigione.getEl(x, y - 1) instanceof Muro))) {
								temp.moveLeft(x, y);
								m++;
							}
						}
					}
				}
				
			}
		}
		System.out.println("Mostri mossi: " + m);
	}
}
